package com.tangsm.spring.boot.aliyun.bailian.dto;

import lombok.Data;

import javax.sound.sampled.AudioFormat;
import javax.validation.constraints.DecimalMax;
import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;

@Data
public class UseVoiceDto {
    /**
     * 文本
     */
    @NotBlank(message = "文本不能为空")
    private String text;

    /**
     * 音色ID
     */
    @NotBlank(message = "音色ID不能为空")
    private String voiceId;


    /**
     * 音频格式（根据SDK的AudioFormat枚举值）
     * AudioFormat.MP3_22050HZ_MONO_256KBPS;
     */
    private AudioFormat format;

    /**
     * 音量范围
     */
    @Min(value = 0, message = "音量范围0-100")
    @Max(value = 100)
    private Integer volume = 50;

    /**
     * 语速
     */
    @DecimalMin("0.5")
    @DecimalMax("2.0")
    private Float speechRate = 1.0f;

    /**
     * 语调
     */
    @DecimalMin("0.5")
    @DecimalMax("2.0")
    private Float pitchRate = 1.0f;
}
